Software Engineering Using design RATionale
نویسنده
چکیده
For a number of years, members of the Artificial Intelligence (AI) in Design community have studied Design Rationale (DR), the reasons behind decisions made while designing. DR is invaluable as an aid for revising, maintaining, documenting, evaluating, and learning the design. The presence of DR would be especially valuable for software maintenance. The rationale would provide insight into why the system is the way it is by giving the reasons behind the design decisions, could help to indicate where changes might be needed during maintenance if design goals change, and help the maintainer avoid repeating earlier mistakes by explicitly documenting alternatives that were tried earlier that did not work. Unfortunately, while everyone agrees that design rationale is useful, it is still not used enough in practice. Possible reasons for this are that the uses proposed for rationale are not compelling enough to justify the effort involved in its capture and that there are few systems available to support rationale use and capture. We have addressed this problem by developing and evaluating a system called SEURAT (Software Engineering Using RATionale) which integrates with a software development environment and goes beyond mere presentation of rationale by inferencing over it to check for completeness and consistency in the reasoning used while a software system is being developed and maintained. We feel that the SEURAT system will be invaluable during development and maintenance of software systems. During development, SEURAT will help the developers ensure that the systems they build are complete and consistent. During maintenance, SEURAT will provide insight into the reasons behind the choices made by the developers during design and implementation. The benefits of DR are clear but only with appropriate tool support, such as that provided by SEURAT, can DR live up to its full potential as an aid for revising, maintaining, and documenting the software design and implementation.
منابع مشابه
Design Rationale Representation in Requirements Engineering using the KAOS meta-model
Requirements specifications made in a poor or incorrect manner have been recognized as a source of problems in software development. Recording design rationale in this activity may contribute to a better reasoning about requirements and how to model them, since the software engineers need to carefully evaluate the justifications for their decisions. This work investigates the design rationale r...
متن کاملAn Integrated Approach for Software Design Checking Using Design Rationale
Design Rationale (DR), the reasons behind decisions made while designing, offers a richer view of both the product and the decision-making process by providing the designers intent behind the decisions. DR is also valuable for checking to ensure that the intent was adhered to throughout the design, as well as pointing out any unresolved (or undocumented) issues that remain open. While there is...
متن کاملIndustrial Applications of Software Synthesis via Category Theory
Over the last two years, we have demonstrated the feasibility of applying category-theoretic methods in spectjying, synthesizing, and maintaining industrial strength software systems. We have been using a-first-ofits-kind tool for this purpose, Kestrel’s Specwarelu software development vstem. In this paper, we describe our experiences and give an industrial perspective on what is needed to make...
متن کاملSupporting Requirements Traceability with Rationale
Requirements, both functional and non-functional, are the driving force behind the many decisions required to develop a software system. These decisions, alternative solutions, and the reasons behind them, can be captured in the rationale for the software system. The rationale contains the arguments for and against each alternative solution, which in turn relate to the functional and nonfunctio...
متن کاملRelating Product Line Context to Requirements Engineering Processes Using Design Rationale
The design of engineering processes is dependent on the context they are designed for. This paper presents the results of an action research study that used design rationale to discover a number of contextual factors that provide criteria for designing a requirements engineering process in a given product line environment. The presented context dimensions and process design argumentation provid...
متن کامل